অ্যাক্সেস মডিফায়ার: private, public, protected, internal

সি শার্প (C#) প্রোগ্রামিং ভাষায় অ্যাক্সেস মডিফায়ারস ব্যবহার করে ক্লাস, মেথড, এবং ভেরিয়েবলের অ্যাক্সেস নিয়ন্ত্রণ করা হয়। অ্যাক্সেস মডিফায়ারস নির্ধারণ করে একটি প্রোগ্রামের কোন অংশে কোন সদস্য (মেথড, প্রোপার্টি, ইত্যাদি) অ্যাক্সেসযোগ্য হবে। এতে মূলত private, public, protected, এবং internal অ্যাক্সেস মডিফায়ারস রয়েছে।

১. public

public মডিফায়ার দ্বারা সংজ্ঞায়িত কোনো ক্লাস, মেথড, বা প্রোপার্টি সব জায়গা থেকে অ্যাক্সেসযোগ্য। এটি সর্বোচ্চ স্তরের অ্যাক্সেস প্রদান করে।

public class Person
{
    public string Name; // Public property

    public void DisplayInfo() // Public method
    {
        Console.WriteLine("Name: " + Name);
    }
}
  • ব্যবহার: ক্লাস বা মেথডকে সব জায়গা থেকে অ্যাক্সেসযোগ্য করতে public ব্যবহার করা হয়।
  • অ্যাক্সেস: প্রোগ্রামের সকল অংশ থেকে অ্যাক্সেসযোগ্য।

২. private

private মডিফায়ার ব্যবহার করে সংজ্ঞায়িত কোনো ফিল্ড, প্রোপার্টি বা মেথড শুধুমাত্র সেই ক্লাসের ভিতরে অ্যাক্সেসযোগ্য। এটি সর্বনিম্ন স্তরের অ্যাক্সেস প্রদান করে।

public class Person
{
    private string name; // Private property

    public void SetName(string name) // Public method to set private property
    {
        this.name = name;
    }

    public void DisplayInfo() // Public method to display private property
    {
        Console.WriteLine("Name: " + name);
    }
}
  • ব্যবহার: অভ্যন্তরীণ ব্যবহারের জন্য এবং ডেটা এনক্যাপসুলেশন নিশ্চিত করতে।
  • অ্যাক্সেস: শুধুমাত্র সেই ক্লাসের মধ্যে সীমাবদ্ধ।

৩. protected

protected মডিফায়ার ব্যবহার করে সংজ্ঞায়িত কোনো মেম্বার শুধুমাত্র সেই ক্লাস এবং তার ইনহেরিটেড (derived) ক্লাসগুলিতে অ্যাক্সেসযোগ্য।

public class Person
{
    protected string Name; // Protected property

    public void SetName(string name)
    {
        Name = name;
    }
}

public class Employee : Person
{
    public void DisplayInfo()
    {
        Console.WriteLine("Name: " + Name); // Accessing protected property from derived class
    }
}
  • ব্যবহার: বেস ক্লাস এবং ডেরাইভড ক্লাসের মধ্যে তথ্য শেয়ার করতে।
  • অ্যাক্সেস: সেই ক্লাস এবং ইনহেরিটেড (derived) ক্লাসগুলোতে সীমাবদ্ধ।

৪. internal

internal মডিফায়ার ব্যবহার করে সংজ্ঞায়িত কোনো মেম্বার শুধুমাত্র সেই অ্যাসেম্বলি বা প্রোজেক্টের মধ্যে অ্যাক্সেসযোগ্য। এটি সাধারণত একই প্রোজেক্ট বা অ্যাসেম্বলি থেকে কোড শেয়ারিংয়ের জন্য ব্যবহৃত হয়।

internal class Person
{
    internal string Name; // Internal property

    internal void DisplayInfo() // Internal method
    {
        Console.WriteLine("Name: " + Name);
    }
}
  • ব্যবহার: একটি অ্যাসেম্বলি বা প্রোজেক্টের ভিতরে তথ্য শেয়ার করতে।
  • অ্যাক্সেস: একই অ্যাসেম্বলি বা প্রোজেকল থেকে অ্যাক্সেসযোগ্য।

৫. protected internal

protected internal একটি কম্বাইন্ড মডিফায়ার যা সেই ক্লাসের মধ্যে, একই অ্যাসেম্বলি থেকে এবং ইনহেরিটেড (derived) ক্লাস থেকে অ্যাক্সেসযোগ্য।

public class Person
{
    protected internal string Name; // Protected internal property
}
  • ব্যবহার: একসাথে protected এবং internal অ্যাক্সেস নিশ্চিত করতে।
  • অ্যাক্সেস: একই অ্যাসেম্বলি বা ইনহেরিটেড ক্লাস থেকে।

উদাহরণ প্রোগ্রাম: বিভিন্ন অ্যাক্সেস মডিফায়ারের ব্যবহার

using System;

namespace AccessModifiersExample
{
    public class Person
    {
        // Private field
        private string name;

        // Public property
        public int Age { get; set; }

        // Internal method
        internal void SetName(string name)
        {
            this.name = name;
        }

        // Protected method
        protected void DisplayName()
        {
            Console.WriteLine("Name: " + name);
        }

        // Public method
        public void ShowAge()
        {
            Console.WriteLine("Age: " + Age);
        }
    }

    public class Employee : Person
    {
        public void ShowInfo()
        {
            // Calling protected method from base class
            DisplayName();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();
            person.Age = 25;
            person.ShowAge();

            Employee employee = new Employee();
            employee.SetName("Alice");
            employee.ShowInfo();
        }
    }
}

আউটপুট

Age: 25
Name: Alice

সারসংক্ষেপ

সি শার্পে বিভিন্ন অ্যাক্সেস মডিফায়ার ব্যবহার করে প্রোগ্রামের বিভিন্ন অংশে মেম্বারদের অ্যাক্সেস নিয়ন্ত্রণ করা যায়। public সব জায়গা থেকে অ্যাক্সেসযোগ্য, private শুধুমাত্র সেই ক্লাসের মধ্যে সীমাবদ্ধ, protected বেস এবং ডেরাইভড ক্লাসে অ্যাক্সেসযোগ্য, এবং internal একই অ্যাসেম্বলিতে সীমাবদ্ধ। অ্যাক্সেস মডিফায়ারগুলি সঠিকভাবে ব্যবহার করলে ডেটার নিরাপত্তা এবং এনক্যাপসুলেশন নিশ্চিত করা যায়।

Content added By

আরও দেখুন...

Promotion